var events=require("events");
var Emitter=events.EventEmitter;

function Dog(name,energy){
    Emitter.call(this);
    this.name=name;
    this.energy=energy;
    /**
     * function函数，函数内this指向取决于函数主体
     * 箭头函数，函数内this指向函数定义的上下文
     */
    var intervalId=setInterval(()=>{
        // 这里要写成箭头函数，否则this指向window
        if(this.energy>=0){
            this.emit("bark");
            this.energy--;
        }
        else{
            clearInterval(intervalId)
        }
    },1000)
}
for(var i in Emitter.prototype){
    Dog.prototype[i]=Emitter.prototype[i]
}

module.exports=Dog;